const mongoose = require('mongoose');

/**
 * 数据库连接模块
 * 负责建立与MongoDB数据库的连接
 */

// MongoDB连接选项，提高稳定性和兼容性
const options = {
  useNewUrlParser: true,     // 使用新的URL解析器
  useUnifiedTopology: true   // 使用新的拓扑引擎
};

/**
 * 连接MongoDB数据库
 * 使用环境变量中的MONGODB_URI作为连接字符串
 */
const connectDB = async () => {
  try {
    // 连接数据库，使用环境变量中的URI
    const conn = await mongoose.connect('mongodb+srv://lixulin:zhangsan@cluster0.bnar7x1.mongodb.net/Zeno?retryWrites=true&w=majority&appName=Cluster0', options);
    // 连接成功，打印主机名
    console.log(`MongoDB连接成功: ${conn.connection.host}`);
    return conn;
  } catch (error) {
    // 连接失败，打印错误信息并退出进程
    console.error(`MongoDB连接错误: ${error.message}`);
    // 退出进程，状态码1表示错误
    process.exit(1);
  }
};

module.exports = connectDB; 